#include"salleCM.h"

SalleCM::SalleCM(const int& numSalle, const int& capacite, const bool& visioconf): Salle(numSalle, capacite), visioConf_(visioconf)
{
}

bool SalleCM::getVisioConf() const
{
	return visioConf_;
}

void SalleCM::setVisioConf(const bool &visioConf)
{
    visioConf_ = visioConf;
}

std::ostream& operator<<(std::ostream& os, SalleCM& s)
{

	os << "la salle : " << (s.getNumSalle()) << " à " << (s.getCapacite()) << " place et ";
	if(s.getVisioConf())
	{
		os << "possede un ";
	} else
	{
		os << "ne possede pas de ";
	}
	
	os << "systeme de visio-conference.\n";
	
	
	ensCre ens = *(s.getECre());
	if(ens.empty())
	{
		os << "la salle n'a pas de créneau affecté.";
	}
	else
	{
		os << "creneaux de la salle:\n";
		ensCre::const_iterator it;
		for(it = ens.begin(); it != ens.end(); ++it)
		{
            os << "\tce créneau commence à " << (*it)->getHeure() << "\n";
		}
	}
	return os;
}

EnsembleSCM::EnsembleSCM()
{
}

void EnsembleSCM::ajoutSalleCM(SalleCM *scm)
{
    listSalleCM_.insert(scm);
}

void EnsembleSCM::ajoutEnsSalleCM(ensSalleCM escm)
{
    ensSalleCM::iterator itEns;
    for (itEns = escm.begin(); itEns!= escm.end(); ++itEns)
    {
        listSalleCM_.insert((*itEns));
    }
}

ensSalleCM EnsembleSCM::getEnsembleSCM()
{
    return listSalleCM_;
}

void EnsembleSCM::supprSalleCM(SalleCM *scm)
{
    listSalleCM_.erase(listSalleCM_.find(scm));
    delete scm;
}
